package ar.unsam.tp.programa

import ar.unsam.tp.excepciones.JugadorCalificadoException

class Calificacion {
	@Property int puntos
	@Property String critica
	@Property Jugador jugadorCalificador
	@Property Jugador jugadorCalificado

	new() {
		puntos = 0
		critica = ""
		jugadorCalificador = null
		jugadorCalificado = null
	}

	new(int p, String c) {
		puntos = p
		critica = c
		jugadorCalificador = null
		jugadorCalificado = null
	}

	def void aceptar() {
		if (this.jugadorCalificado.contieneCalificacionRecibida(this))
			throw new JugadorCalificadoException("El jugador ya recibio esta calificacion")
		this.jugadorCalificado.addCalificacionRecibida(this)
	}

	def void rechazar(String motivo) {
		if (this.jugadorCalificador.contieneCalificacionRechazada(this))
			throw new JugadorCalificadoException("La calificacion realizada por el jugador ya fue rechazada")
		this.jugadorCalificador.addCalificacionRechazada(this)
	}
}
